/**
 * @file scene2D.h
 * @author jimingqing
 * @date 2023-04-17
 * @version 0.0.1
 * @copyright XiazhiTech Copyright (c) 2023
 *
 * @brief
 */

#ifndef _SCENE2D_H_
#define _SCENE2D_H_

#include "engine.h"
#include "scene.h"
#include "opengl/opengl_shader.h"
#include "entity/object2D.h"
#include "entity/camera.h"

namespace engine
{
    class Scene2D : public Scene
    {
    public:
        typedef std::shared_ptr<Scene2D> ptr;

    public:
        Scene2D();
        ~Scene2D();
        void addObject(Object2D *object);

        void render(double time);
        // 输入处理
        void processInput(GLFWwindow *window);

    protected:
        void update();

    protected:
        Object2D *objectRoot;
    };
}

#endif /* _SCENE2D_H_ */
